package com.itany.corejava.util;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年10月30日 10:17
 */
public class ArrayUtil {



    /**
     * 实现将一个数组的元素全部复制到另一个新数组中去，2个参数，有返回值
     * @param oldArr  原数组
     * @param newArr  新数组
     * @return 数组
     */
    public static int[] copyArray(int[] oldArr,int[] newArr){
        for(int i=0;i<oldArr.length;i++){
            newArr[i]=oldArr[i];
        }
        return newArr;
    }



    /**
     * 实现输出数组中的元素的功能，要求在控台台输出的结果是:XX*XX*XX，一个参数，有返回值
     * @param arr 一个数组
     * @return 字符串
     */
    public static String arrToStr(int[] arr){
        String str="";
        for(int i=0;i<arr.length-1;i++){
            str+=arr[i]+"*";
        }
        str+=arr[arr.length-1];
        return str;
    }





    /**
     * 实现交换数组中指定位置的两个元素的位置,三个参数，有返回值
     * @param arr  一个数组
     * @param index1 一个索引
     * @param index2 另一个索引
     * @return
     */
    public static int[] changeLoc(int[] arr,int index1,int index2){
        int temp=arr[index1];
        arr[index1]=arr[index2];
        arr[index2]=temp;
        return arr;
    }


    /**
     * 定义一个方法，随机生成一个int类型的数组，通过方法的参数控制数组的长度以及取值范围、
     * 其值指定范围x-y之间的整数，且不能重复
     * 参数有三个：数组长度、最小值、最大值
     * @param length  数组长度
     * @param x 最小值
     * @param y 最大值
     * @return 数组
     */
    public static int[] createArr(int length,int x,int y){//(5,10,20)
        int[] arr=new int[length];
        for(int i=0;i<arr.length;i++){
            //随机生成x-y的整数
            arr[i]=(int)(Math.random()*(y-x+1)+x);//arr[0]=11   arr[1]=11
            for(int j=0;j<i;j++){
                if(arr[j]==arr[i]){
                    i--;
                    break;
                }
            }

        }
        return arr;
    }
}
